/**
 * **************
 * 项目名称: testgulili <br/>
 * 文件名称:  <br/>
 * 文件描述: 这里添加您的类文件描述，说明当前文件要包含的功能。 <br/>
 * 文件创建：刘世锦 <br/>
 * 创建时间: 2022/2/25 <br/>
 *
 * @version v1.0 <br/>
 * @update [序号][日期YYYY-MM-DD][更改人姓名][变更描述]<br/>
 * *************
 */
public class ExtendsTheory {

    public static void main(String[] args) {

        Son son = new Son();//内存的布局

//?-> 这时请大家注意，要按照查找关系来返回信息

//(1) 首先看子类是否有该属性

//(2) 如果子类有这个属性，并且可以访问，则返回信息

//(3) 如果子类没有这个属性，就看父类有没有这个属性(如果父类有该属性，并且可以访问，就返回信息..)

//(4) 如果父类没有就按照(3)的规则，继续找上级父类，直到 Object...

        System.out.println(son.name);
//        System.out.println(son.name);//返回就是大头儿子

//System.out.println(son.age);//返回的就是 39

//System.out.println(son.getAge());//返回的就是 39

        System.out.println(son.hobby);//返回的就是旅游
        System.out.println(son.getName());
    }

}

class GrandPa { //爷类

    String name = "大头爷爷";

    String hobby = "旅游";
    public String getName(){
        return name;
    }

}

class Father extends GrandPa {//父类

    String name = "大头爸爸";

    private int age = 39;

    public int getAge() {

        return age;

    }

}

class Son extends Father { //子类

    String name = "大头儿子";

}
